﻿// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Pointer.generated.h"


// 指针

UCLASS()
class XCZ3_API APointer : public AActor
{
	GENERATED_BODY()
	
	// 类的容器，可以在编辑器中过滤不符合要求的类
	UPROPERTY(VisibleAnywhere)
	TSubclassOf<AActor> TestActor1;

	// 共享指针，一般未继承自UObject的类，为了安全，可以使用共享指针包裹，和C++远程的智能指针意义相同。
	TSharedPtr<AActor> TestActor2;

	TShaderRef<AActor> TestActor3;

	// 可以把裸指针托管到UE，一般用于C++原生类。
	UPROPERTY()
	TObjectPtr<AActor> TestActor4;
	
public:
	APointer();
	virtual void BeginPlay() override;
	virtual void Tick(float DeltaTime) override;
};
